package com.eu.ebpm.engine.express;

import java.math.BigDecimal;

/**
 * 
 * 类名称: Variable
 * 类描述: 参数
 * @author 王晓华
 * @since 2013-12-23 下午04:05:06
 * @version v1.0
 * @param <T>
 */
public class Variable<T> {

	/**
	 * 类型
	 */
	private VariableType type;
	
	/**
	 * 名称
	 */
	private String name;
	
	/**
	 * 值
	 */
	private T value;
	
	/**
	 * 表达式
	 */
	private String express;
	
	private boolean sizeType;
	
	private String sizeExpress;
	
	private BigDecimal sizeValue;

	public Boolean getSizeType() {
		return sizeType;
	}

	public void setSizeType(Boolean sizeType) {
		this.sizeType = sizeType;
	}

	public String getSizeExpress() {
		return sizeExpress;
	}

	public void setSizeExpress(String sizeExpress) {
		this.sizeExpress = sizeExpress;
	}

	public BigDecimal getSizeValue() {
		return sizeValue;
	}

	public void setSizeValue(BigDecimal sizeValue) {
		this.sizeValue = sizeValue;
	}

	public VariableType getType() {
		return type;
	}

	public void setType(VariableType type) {
		this.type = type;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public T getValue() {
		return value;
	}

	@SuppressWarnings("unchecked")
	public void setValue(Object value) {
		this.value = (T) value;
	}

	public String getExpress() {
		return express;
	}

	public void setExpress(String express) {
		this.express = express;
	}

	@Override
	public String toString() {
		return "Variable [type=" + type + ", name=" + name + ", value=" + value + ", express='" + express + "', sizeType=" + sizeType + ", sizeExpress='" + sizeExpress + "', sizeValue=" + sizeValue + "]";
	}
	
}
